'''

子程序/函数：在所有语言中都是层级调用，比如A调用B，在B执行的过程中又可以调用C，C执行完毕返回，B执行完毕返回，最后是A执行完毕.是通过栈实现的，一个线程就是执行一个子程序，子程序调用总是一个入口，一次返回，调用的顺序是明确的

概述：看上去也是子程序，但执行过程中,在子程序的内部可中断，然后转而执行别的子程序，不是函数调用，有点类型CPU中断。

'''
'''
def C():
    print("C--start")

    print("C--end")

def B():
    print("B--start")
    C()
    print("B--end")

def A():
    print("A--start")
    B()
    print("A--end")

A()
'''

def A():
    print(1)
    print(2)
    print(3)
def B():
    print("x")
    print("y")
    print("z")
'''
1
2
x
y
z
3
执行出这个结果
但是A中没有B的调用
看起来A、B执行过程有点像线程，但协程的特点在于是一个线程执行


与线程相比，协程的执行效率极高，因为只有一个线程，也不存在同时写变量的冲突，在协程中共享资源不加锁，只需要判断状态
'''
